using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;


namespace objetos
{

    [Serializable]

	#region TB_PRODUTO
	/// <summary>
	/// This object represents the properties and methods of a TB_PRODUTO.
	/// </summary>
	public class OBJ_TB_PRODUTO
	{
		#region Construtor
		public OBJ_TB_PRODUTO() {
            this.Tb_origem_produto = new OBJ_TB_ORIGEM_PRODUTO();
            this.Tb_produto_detalhe = new OBJ_TB_PRODUTO_DETALHE();
            this.Tb_produto_estrutura = new List<OBJ_TB_PRODUTO_ESTRUTURA>();
            this.Tb_produto_grupo = new OBJ_TB_PRODUTO_GRUPO();
            this.Tb_produto_imposto = new OBJ_TB_PRODUTO_IMPOSTO();
            this.Tb_produto_marca = new OBJ_TB_PRODUTO_MARCA();
            this.Tb_tipo_item = new OBJ_TB_TIPO_ITEM();
            this.Tb_produto_categoria = new OBJ_TB_PRODUTO_CATEGORIA();
            this.Tb_genero_produto_servico = new OBJ_TB_GENERO_PRODUTO_SERVICO();
            this.Tb_estoque_local = new OBJ_TB_ESTOQUE_LOCAL();
            this.Tb_ncm = new OBJ_TB_NCM();
        
        }
		#endregion
		
		#region Public Properties
		
		private int _id;
		private int _id_marca;
		private int _id_grupo;
		private int _id_categoria;
		private int _id_ncm;
		private int? _extipi;
        private int _id_genero_produto_servico;
		private int _id_tipo_item;
		private int _id_tipo_producao;
		private string _ean;
        private int? _cfop;
		private string _descricao = String.Empty;
		private decimal _qtd_inicial;
		private decimal _valor_promocao;
		private decimal _valor_custo;
		private decimal _valor_margem_lucro;
		private decimal _valor_venda;
		private decimal _valor_custo_medio;
		private int? _id_unidade_medida;
		private int? _id_estoque_local;
		private int? _id_servico_issqn;
		private bool _sit_ativo;
		private DateTime? _dt_cadastro;
		private bool _sit_mov_estoque;
		private int? _id_usuario_checkin;
		private DateTime? _dt_checkin;

        private OBJ_TB_ESTOQUE_LOCAL _tb_estoque_local;

        public OBJ_TB_ESTOQUE_LOCAL Tb_estoque_local
        {
            get { return _tb_estoque_local; }
            set { _tb_estoque_local = value; }
        }

        private OBJ_TB_NCM _tb_ncm;

        public OBJ_TB_NCM Tb_ncm
        {
            get { return _tb_ncm; }
            set { _tb_ncm = value; }
        }


        private OBJ_TB_GENERO_PRODUTO_SERVICO _tb_genero_produto_servico;

        public OBJ_TB_GENERO_PRODUTO_SERVICO Tb_genero_produto_servico
        {
            get { return _tb_genero_produto_servico; }
            set { _tb_genero_produto_servico = value; }
        }


        private OBJ_TB_PRODUTO_CATEGORIA _tb_produto_categoria;

        public OBJ_TB_PRODUTO_CATEGORIA Tb_produto_categoria
        {
            get { return _tb_produto_categoria; }
            set { _tb_produto_categoria = value; }
        }

        private OBJ_TB_ORIGEM_PRODUTO _tb_origem_produto;

        public OBJ_TB_ORIGEM_PRODUTO Tb_origem_produto
        {
            get { return _tb_origem_produto; }
            set { _tb_origem_produto = value; }
        }

        private OBJ_TB_TIPO_ITEM _tb_tipo_item;

        public OBJ_TB_TIPO_ITEM Tb_tipo_item
        {
            get { return _tb_tipo_item; }
            set { _tb_tipo_item = value; }
        }

        private OBJ_TB_PRODUTO_DETALHE _tb_produto_detalhe;

        public OBJ_TB_PRODUTO_DETALHE Tb_produto_detalhe
        {
            get { return _tb_produto_detalhe; }
            set { _tb_produto_detalhe = value; }
        }
        private List<OBJ_TB_PRODUTO_ESTRUTURA> _tb_produto_estrutura;

        public List<OBJ_TB_PRODUTO_ESTRUTURA> Tb_produto_estrutura
        {
            get { return _tb_produto_estrutura; }
            set { _tb_produto_estrutura = value; }
        }
        private OBJ_TB_PRODUTO_MARCA _tb_produto_marca;

        public OBJ_TB_PRODUTO_MARCA Tb_produto_marca
        {
            get { return _tb_produto_marca; }
            set { _tb_produto_marca = value; }
        }
        private OBJ_TB_PRODUTO_IMPOSTO _tb_produto_imposto;

        public OBJ_TB_PRODUTO_IMPOSTO Tb_produto_imposto
        {
            get { return _tb_produto_imposto; }
            set { _tb_produto_imposto = value; }
        }
        private OBJ_TB_PRODUTO_GRUPO _tb_produto_grupo;

        public OBJ_TB_PRODUTO_GRUPO Tb_produto_grupo
        {
            get { return _tb_produto_grupo; }
            set { _tb_produto_grupo = value; }
        }

		public int id
		{
			get {return _id;}
			set {_id = value;}
		}
		
		public int id_marca
		{
			get {return _id_marca;}
			set {_id_marca = value;}
		}

		public int id_grupo
		{
			get {return _id_grupo;}
			set {_id_grupo = value;}
		}

		public int id_categoria
		{
			get {return _id_categoria;}
			set {_id_categoria = value;}
		}

		public int id_ncm
		{
			get {return _id_ncm;}
			set {_id_ncm = value;}
		}

		public int? extipi
		{
			get {return _extipi;}
			set {_extipi = value;}
		}

		public int id_genero_produto_servico
		{
			get {return _id_genero_produto_servico;}
			set {_id_genero_produto_servico = value;}
		}

		public int id_tipo_item
		{
			get {return _id_tipo_item;}
			set {_id_tipo_item = value;}
		}

		public int id_tipo_producao
		{
			get {return _id_tipo_producao;}
			set {_id_tipo_producao = value;}
		}

		public string ean
		{
			get {return _ean;}
			set {_ean = value;}
		}
        public int? cfop
        {
            get { return _cfop; }
            set { _cfop = value; }
        }


		public string descricao
		{
			get {return _descricao;}
			set {_descricao = value;}
		}

		public decimal qtd_inicial
		{
			get {return _qtd_inicial;}
			set {_qtd_inicial = value;}
		}

		public decimal valor_promocao
		{
			get {return _valor_promocao;}
			set {_valor_promocao = value;}
		}

		public decimal valor_custo
		{
			get {return _valor_custo;}
			set {_valor_custo = value;}
		}

		public decimal valor_margem_lucro
		{
			get {return _valor_margem_lucro;}
			set {_valor_margem_lucro = value;}
		}

		public decimal valor_venda
		{
			get {return _valor_venda;}
			set {_valor_venda = value;}
		}

		public decimal valor_custo_medio
		{
			get {return _valor_custo_medio;}
			set {_valor_custo_medio = value;}
		}

		public int? id_unidade_medida
		{
			get {return _id_unidade_medida;}
			set {_id_unidade_medida = value;}
		}

		public int? id_estoque_local
		{
			get {return _id_estoque_local;}
			set {_id_estoque_local = value;}
		}

		public int? id_servico_issqn
		{
			get {return _id_servico_issqn;}
			set {_id_servico_issqn = value;}
		}

		public bool sit_ativo
		{
			get {return _sit_ativo;}
			set {_sit_ativo = value;}
		}

		public DateTime? dt_cadastro
		{
			get {return _dt_cadastro;}
			set {_dt_cadastro = value;}
		}

		public bool sit_mov_estoque
		{
			get {return _sit_mov_estoque;}
			set {_sit_mov_estoque = value;}
		}

		public int? id_usuario_checkin
		{
			get {return _id_usuario_checkin;}
			set {_id_usuario_checkin = value;}
		}

		public DateTime? dt_checkin
		{
			get {return _dt_checkin;}
			set {_dt_checkin = value;}
		}
		#endregion
		
	}
	#endregion
}

